package com.sc.nft.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sc.nft.entity.ImGroup;
import com.sc.nft.entity.dto.TransferGroupMasterDTO;
import com.sc.nft.entity.vo.AdminGroupListVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface ImGroupMapper extends BaseMapper<ImGroup> {

    /**
     * 群列表
     *
     * @param page
     * @return
     */
    Page<AdminGroupListVO> adminGroupList(Page page);

    /**
     * 转让群主
     *
     * @param transferGroupMasterDTO
     */
    void transferGroupMaster(@Param("transferGroupMasterDTO") TransferGroupMasterDTO transferGroupMasterDTO);

    /**
     * 获取指定开始结束下标的群组
     *
     * @param start
     * @param end
     * @return
     */
    List<ImGroup> getStartAndEndData(@Param("start") Integer start, @Param("end") Integer end);

    /**
     * 获取官方的群组最后一个数据
     *
     * @return
     */
    ImGroup getOfficialLimitFinallyData();

    /**
     * 获取所有官方群数量
     * @return
     */
    Integer getGroupOfficialSum();

}
